Andrea Corallo [Mon, 22 Jun 2020 22:33:09 +0000 (00:33 +0200)]
* lisp/gnus/gnus.el (gnus): Fix a check to handle native compilation.
Andrea Corallo [Sun, 21 Jun 2020 22:20:03 +0000 (00:20 +0200)]
Merge remote-tracking branch 'savahnna/master' into dev
Andrea Corallo [Sun, 21 Jun 2020 18:52:52 +0000 (20:52 +0200)]
Two `load-history' eln related fixes.
* src/lread.c (Fload): Fix `load-history' filling for elns non in
root lisp-dir.
* lisp/startup.el (command-line): Fix `load-history' fixup
algorith for eln files.
Andrea Corallo [Thu, 18 Jun 2020 21:21:32 +0000 (23:21 +0200)]
;* src/comp.c (define_maybe_gc_or_quit): Fix a comment.
Andrea Corallo [Thu, 18 Jun 2020 21:14:06 +0000 (23:14 +0200)]
* src/comp.c (Fcomp__compile_ctxt_to_file): Confine gcc optim level in [0, 3].
Andrea Corallo [Thu, 18 Jun 2020 21:04:55 +0000 (23:04 +0200)]
* Handle correctly pure delaration specifier.
* lisp/emacs-lisp/comp.el (comp-func): New slot 'pure'.
(comp-spill-decl-spec): New function.
(comp-spill-speed): Rework to use the later.
(comp-spill-lap-function, comp-intern-func-in-ctxt): Spill pure
decl value.
(comp-function-optimizable-p): Check in the compiler env too if
pure.
Andrea Corallo [Wed, 17 Jun 2020 20:46:48 +0000 (22:46 +0200)]
* Add a func-arity test for dynamic functions
* test/src/comp-tests.el (comp-tests-dynamic-arity): New test.
Andrea Corallo [Wed, 17 Jun 2020 20:17:57 +0000 (22:17 +0200)]
Do not native compile two functions to allow cc-mode hack
* lisp/progmodes/cc-langs.el (c-populate-syntax-table): Declare
with speed -1.
* lisp/progmodes/cc-bytecomp.el
(cc-bytecomp-compiling-or-loading): Declare with speed -1.
Andrea Corallo [Mon, 15 Jun 2020 19:27:00 +0000 (21:27 +0200)]
Add a test for speed -1
* test/src/comp-tests.el (comp-test-speed--1): New test
* test/src/comp-test-funcs.el (comp-test-speed--1-f): New
function.
Andrea Corallo [Mon, 15 Jun 2020 18:26:00 +0000 (20:26 +0200)]
Allow per function speed declaration
* src/comp.c (COMP_SPEED): Rename.
(comp_t): Add 'func_speed' field.
(emit_mvar_lval, compile_function): Update for per function speed.
(Fcomp__compile_ctxt_to_file): COMP_SPEED renamed.
* lisp/emacs-lisp/comp.el (comp-speed): Doc update.
(comp-func): New 'speed' slot.
(comp-spill-speed): New function.
(comp-spill-lap-function, comp-intern-func-in-ctxt): Fill 'speed'
slot.
(comp-spill-lap-function): Gate -1 speed functions for native
compilation and emit bytecode instead.
(comp-spill-lap): Close over `byte-to-native-plist-environment'.
(comp-latch-make-fill): Update for per function speed.
(comp-limplify-top-level): Fill speed.
(comp-propagate1, comp-call-optim-form-call, comp-call-optim)
(comp-dead-code, comp-tco, comp-remove-type-hints): Update for per
function speed.
Andrea Corallo [Tue, 2 Jun 2020 10:08:50 +0000 (11:08 +0100)]
Execute top level forms in the right lex/dyn scope.
* lisp/emacs-lisp/bytecomp.el (byte-to-native-top-level): Add
'lexical' slot.
(byte-compile-output-file-form): Update for new slot.
(byte-compile-file-form-defmumble): Capture scope.
* lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Specify
execution scope.
Andrea Corallo [Tue, 10 Dec 2019 11:55:34 +0000 (12:55 +0100)]
Add some testing for dynamic scope
* test/src/comp-test-funcs-dyn.el: New file.
* test/src/comp-tests.el (comp-tests-dynamic-ffuncall): Add
new tests.
Mattias Engdegård [Fri, 12 Jun 2020 16:12:37 +0000 (18:12 +0200)]
Consolidate #RGB string parsers
Use a single parser of color strings in the #RGB, rgb:R/G/B and
rgbi:R/G/B formats, replacing four existing ones. Previously,
error-checking was spotty, handling of the rgbi: format not always
present, and normalization of the result was sometimes incorrect.
* src/dispextern.h: New prototype.
* src/xfaces.c (parse_hex_color_comp, parse_float_color_comp)
(parse_color_spec, Finternal-color_values_from_color_spec): New functions.
* test/src/xfaces-tests.el (xfaces-internal-color-values-from-color-spec):
New test.
* lisp/term/tty-colors.el (tty-color-standard-values):
Use internal-color-values-from-color-spec, replacing old parser.
* src/nsterm.m (ns_get_color):
* src/w32fns.c (x_to_w32_color):
* src/xterm.c (x_parse_color): Use parse_color_spec, replacing old
parsers.
(HEX_COLOR_NAME_LENGTH): Remove #define.
Basil L. Contovounesios [Sun, 21 Jun 2020 18:01:40 +0000 (19:01 +0100)]
Revert last change in benchmark.el
For discussion, see the following thread:
https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00791.html
* lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Revert to
giving byte-compile a form rather than a closure.
Eli Zaretskii [Sun, 21 Jun 2020 16:20:37 +0000 (19:20 +0300)]
Improve doc strings of 'project-shell' and 'project-eshell'
* lisp/progmodes/project.el (project-shell, project-eshell): Doc
fixes.
Basil L. Contovounesios [Sun, 21 Jun 2020 13:31:16 +0000 (14:31 +0100)]
Replace some uses of cl-mapcan with mapcan
* lisp/progmodes/project.el (project-files, project-files):
* lisp/progmodes/xref.el (xref-backend-references)
(xref--convert-hits):
* test/lisp/emacs-lisp/package-tests.el
(package-test-strip-version): Replace cl-mapcan with equivalent
calls to mapcan.
Michael Albinus [Sun, 21 Jun 2020 13:19:51 +0000 (15:19 +0200)]
Fix remaining problems with tramp-crypt.el
* lisp/net/tramp-compat.el (tramp-compat-make-temp-file):
Simplify implementation.
* lisp/net/tramp-crypt.el (tramp-crypt-handle-delete-file)
(tramp-crypt-handle-file-attributes, tramp-crypt-handle-file-system-info)
(tramp-crypt-handle-make-directory): Let-bind `tramp-crypt-enabled' to nil.
* lisp/net/tramp.el (tramp-file-name-for-operation): Fix for operations
with two arguments.
(tramp-handle-load): Suppress `signal-hook-function' when NOERROR
is non-nil.
* test/lisp/net/tramp-tests.el (tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls): Skip if needed.
Basil L. Contovounesios [Sun, 21 Jun 2020 12:42:14 +0000 (13:42 +0100)]
Evaluate some unnecessarily quoted lambdas
* lisp/cedet/semantic/complete.el
(semantic-displayer-tooltip-max-tags):
* lisp/emacs-lisp/benchmark.el (benchmark-run-compiled):
* lisp/emacs-lisp/package.el (package--default-summary)
(package-menu-filter-by-version):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/progmodes/verilog-mode.el (verilog-auto-lineup)
(verilog-auto-reset-widths, verilog-auto-arg-format)
(verilog-auto-inst-vector, verilog-auto-inst-template-numbers):
* lisp/textmodes/bibtex.el (bibtex-dialect):
* test/lisp/autoinsert-tests.el
(autoinsert-tests-define-auto-insert-before)
(autoinsert-tests-define-auto-insert-after): Remove some unnecessary
quoting around anonymous functions.
Basil L. Contovounesios [Sun, 21 Jun 2020 11:50:34 +0000 (12:50 +0100)]
Silence some warnings in tests
* test/lisp/emacs-lisp/package-tests.el
(package-test-suffix-matches): Evaluate lambda.
(package-test-list-filter-marked):
* test/lisp/vc/vc-tests.el
(vc-test--run-maybe-unsupported-function):
* test/src/undo-tests.el (undo-test-skip-invalidated-markers):
Silence "unused local variable" warnings.
* test/lisp/imenu-tests.el (imenu-simple-scan-deftest): Fix
docstring. Don't shadow global major-mode.
Dmitry Gutov [Sun, 21 Jun 2020 01:19:29 +0000 (04:19 +0300)]
; project-shell, project-eshell: Docstring tweaks
Theodor Thornhill [Sat, 20 Jun 2020 09:54:22 +0000 (11:54 +0200)]
Pop to an existing Eshell buffer by default
* lisp/progmodes/project.el (project-shell): Improve docstring to
include information about an implementation detail.
* list/progmodes/project.el (project-eshell): Modelled after
'project-shell', change default behavior such that we don't create too
many eshell buffers by default. Use universal argument to create
subsequent buffers.
Philipp Stephani [Sat, 20 Jun 2020 20:12:19 +0000 (22:12 +0200)]
Fix a byte-compile warning.
* lisp/gnus/gnus-cloud.el (gnus-cloud-download-data): Don't use
'mapcar' or effect.
Eli Zaretskii [Sat, 20 Jun 2020 08:46:52 +0000 (11:46 +0300)]
Fix last change for bug#41619
* lisp/progmodes/python.el (python-shell-virtualenv-root): Fix
last change. (Bug#41619)
Eli Zaretskii [Sat, 20 Jun 2020 08:31:19 +0000 (11:31 +0300)]
Documentation followup to the last change
* doc/emacs/cmdargs.texi (General Variables):
* etc/NEWS: Document the COLORTERM environment variable.
(Bug#41846)
Jan Beich [Sun, 14 Jun 2020 03:51:24 +0000 (03:51 +0000)]
Add fallback for 24-bit terminal color via COLORTERM=truecolor
* src/term.c (init_tty): When COLORTERM=truecolor is defined,
override setaf/setab/colors terminfo capabilities with 24-bit
color support.
* doc/misc/efaq.texi (Colors on a TTY): Mention the possibility to
enable 24-bit color via the COLORTERM environment variable.
(Bug#41846)
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 20 Jun 2020 07:51:51 +0000 (10:51 +0300)]
Revert "Don't mention non-GNU package archives."
This reverts commit
5daa7a5fd4aced33a2ae016bde5bb37d1d95edf6.
A proper fix will be committed to the emacs-27 branch, and
will be later merged to master.
Andrew Burgess [Sun, 7 Jun 2020 08:20:19 +0000 (09:20 +0100)]
Fix bug with deactivation of mark in 'cua-cancel'
* lisp/emulation/cua-base.el (cua-cancel): Use 'deactivate-mark'
instead of setting 'mark-active' directly.
Copyright-paperwork-exempt: yes
Theodor Thornhill [Sat, 20 Jun 2020 01:02:18 +0000 (04:02 +0300)]
project-shell: Pop to an existing shell buffer by default
* lisp/progmodes/project.el (project-shell):
Pop to an existing shell buffer by default.
If there's none, or if universal argument is used, open a subsequent
shell buffer and jump to it. Prefix shell buffer name with the base
name of project root directory. (Bug#41858)
Eli Zaretskii [Fri, 19 Jun 2020 18:50:30 +0000 (21:50 +0300)]
Fix last change in doc strings of project.el
* lisp/progmodes/project.el (project-switch-to-buffer): More accurate
doc string.
Michael Albinus [Fri, 19 Jun 2020 13:12:31 +0000 (15:12 +0200)]
Fix various problems in Tramp
* lisp/net/tramp-compat.el (tramp-temp-name-prefix): Declare.
(tramp-compat-make-temp-name):
* lisp/net/tramp.el (tramp-make-tramp-temp-name): New defuns.
* lisp/net/tramp.el (tramp-make-tramp-temp-file):
* lisp/net/tramp-sh.el (tramp-find-inline-encoding)
(tramp-maybe-open-connection, tramp-get-remote-touch)
(tramp-get-remote-chmod-h):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): Use them.
* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-stat):
Simplify shell command. Suppress errors (interpret as nil).
(tramp-sh-handle-make-process): Do not visit with
`insert-file-contents'. Delete tmp file only if exists.
(tramp-send-command-and-read): Suppress `signal-hook-function'
when reading expression.
Eli Zaretskii [Fri, 19 Jun 2020 07:52:00 +0000 (10:52 +0300)]
Improve doc strings of project.el
* lisp/progmodes/project.el (project-dired, project-shell)
(project-eshell, project-switch-to-buffer, project-kill-buffers)
(project-list-file, project--read-project-list)
(project--ensure-read-project-list, project--write-project-list)
(project--add-to-project-list-front)
(project--remove-from-project-list, project-prompt-project-dir)
(project-switch-commands, project-switch-project): Fix wording and
formatting of doc strings.
Michael Albinus [Fri, 19 Jun 2020 07:24:27 +0000 (09:24 +0200)]
Fix newly introduced errors in Tramp
* lisp/net/tramp-gvfs.el (tramp-gvfs-unload-hook):
Remove `tramp-gvfs-dbus-event-error' from `dbus-event-error-functions'.
* lisp/net/tramp.el (tramp-autoload-file-name-handler): Revert patch.
Andrea Corallo [Mon, 1 Jun 2020 11:47:29 +0000 (12:47 +0100)]
Add native compiler dynamic scope support
Add an initial implementation to support dynamic scope. Arg
parsing/binding it's done using the existing code in use for
bytecode (no ad-hoc code is synthetized for that).
* src/lisp.h (struct Lisp_Subr): Add lambda_list field.
(SUBR_NATIVE_COMPILED_DYNP): New inliner.
* src/alloc.c (mark_object): Update for Add lambda_list field.
* src/eval.c (eval_sub, Ffuncall, funcall_lambda): Handle native
compiled dynamic scope
* src/comp.c (declare_lex_function): Rename from declare_function
and rework.
(declare_function): New function.
(make_subr): Handle daynamic scope
* src/pdumper.c (dump_subr): Update for lambda_list field.
* lisp/emacs-lisp/comp.el (comp-func): Remove args slot.
(comp-func-l, comp-func-d): New classes deriving from `comp-func'.
(comp-spill-lap-function): Rework.
(comp-prepare-args-for-top-level): New function.
(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Make
use of `comp-prepare-args-for-top-level'.
(comp-limplify-top-level): Use `comp-func-l'.
(comp-limplify-function): Emit arg prologue only for dynamic
scoped functions.
(comp-call-optim-form-call): Use `comp-func-l'.
(comp-call-optim, comp-tco): Do not optimize dynamic scoped code.
Andrii Kolomoiets [Thu, 18 Jun 2020 23:21:55 +0000 (02:21 +0300)]
project-switch-to-buffer: Use the "other buffer" as default
* lisp/progmodes/project.el
(project-switch-to-buffer): Pass the "other buffer" as DEF to
read-buffer if it belongs to the current project (bug#41879).
Paul Eggert [Thu, 18 Jun 2020 21:01:56 +0000 (14:01 -0700)]
Check AREF and aref_addr subscripts
* src/lisp.h (gc_asize): Move before first use.
(AREF, aref_addr): Check subscripts.
Co-authored-by: Tino Calancha <tino.calancha@gmail.com>
Mattias Engdegård [Thu, 18 Jun 2020 19:55:36 +0000 (21:55 +0200)]
; * lisp/faces.el (color-luminance-dark-limit): Better doc string.
Mattias Engdegård [Thu, 18 Jun 2020 19:16:42 +0000 (21:16 +0200)]
Define the dark luminance limit as a named constant
To make the meaning of the color-dark-p cutoff luminance clear,
define it as a named constant. (We no longer use the somewhat
obscure 0.6^2.2 definition since it doesn't really make sense
to define the limit in gamma-compressed space.)
* lisp/faces.el (color-luminance-dark-limit): New constant.
(color-dark-p): Use color-luminance-dark-limit.
Michael Albinus [Thu, 18 Jun 2020 18:00:39 +0000 (20:00 +0200)]
* etc/NEWS: Fix inconsistencies. Add `tramp-crypt-add-directory'.
Michael Albinus [Thu, 18 Jun 2020 18:00:26 +0000 (20:00 +0200)]
Some Tramp cleanups, mainly in tramp-crypt.el
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Add `add-name-to-file', `make-directory-internal',
`make-nearby-temp-file', `temporary-file-directory' and
`unhandled-file-name-directory'.
(tramp-crypt-file-name-for-operation):
Use `tramp-compat-temporary-file-directory'.
(tramp-crypt-do-encrypt-or-decrypt-file-name)
(tramp-crypt-do-encrypt-or-decrypt-file): Fix syntax error in
`tramp-error'.
* lisp/net/tramp.el (tramp-autoload-file-name-handler):
* lisp/net/tramp-rclone.el (tramp-rclone-mounted-p)
(tramp-rclone-flush-directory-cache):
Use `tramp-compat-temporary-file-directory'.
Dmitry Gutov [Thu, 18 Jun 2020 15:42:28 +0000 (18:42 +0300)]
Add binding for project-kill-buffers
* lisp/progmodes/project.el (project-prefix-map):
Add binding for project-kill-buffers (bug#41868).
Basil L. Contovounesios [Thu, 7 May 2020 23:25:38 +0000 (00:25 +0100)]
Propertize all shr fragment IDs as shr-target-id
* lisp/net/shr.el (shr-target-id): Add docstring.
(shr-descend, shr-tag-a): Display dummy anchor characters as the
empty string. Give all relevant 'id' or 'name' fragment identifier
attributes the shr-target-id text property. This ensures that
cached content, such as tables, retains the property across
renders. (Bug#40532)
* lisp/net/eww.el: (eww-display-html): Adapt shr-target-id property
search accordingly.
Basil L. Contovounesios [Thu, 11 Jun 2020 12:49:31 +0000 (13:49 +0100)]
Improve battery.el UPower support
For discussion, see the following threads:
https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00843.html
https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00042.html
https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00282.html
* etc/NEWS: Announce that battery-upower is enabled by default.
* lisp/battery.el (battery-upower-device): Accept both battery and
line power device names, or a list thereof (bug#39491).
(battery-upower-line-power-device): Remove user option; superseded
by battery-upower-device.
(battery-upower-subscribe): New user option.
(battery-status-function): Check whether a UPower service is
provided without activating it.
(display-battery-mode): Subscribe to UPower signals when using
battery-upower.
(battery-upower): Merge data from multiple power sources. Calculate
terse battery status %b based on average battery load percentage
rather than coarse and often missing BatteryLevel (bug#39491). Add
support for average temperature %d.
(battery-upower-dbus-service)
(battery-upower-dbus-interface)
(battery-upower-dbus-path)
(battery-upower-dbus-device-interface)
(battery-upower-dbus-device-path)
(battery-upower-device-all-properties): Rename to...
(battery-upower-service)
(battery-upower-interface)
(battery-upower-path)
(battery-upower-device-interface)
(battery-upower-device-path)
(battery--upower-device-properties): ...these, respectively.
(battery-upower-device-list): Rename to...
(battery--upower-devices) ...this. Return a flat list of device
names determined by battery-upower-device.
(battery-upower-types, battery-upower-states)
(battery-upower-device-property, battery-upower-device-autodetect):
Remove.
(battery--upower-signals): New variable.
(battery--upower-signal-handler, battery--upower-props-changed)
(battery--upower-unsubscribe, battery--upower-subsribe)
(battery--upower-state): New functions.
* test/lisp/battery-tests.el (battery-upower-state)
(battery-upower-state-unknown): New tests.
Basil L. Contovounesios [Thu, 11 Jun 2020 12:48:37 +0000 (13:48 +0100)]
Various battery.el improvements (bug#41808)
* lisp/battery.el: Mention BSD support in Commentary. Don't load
preloaded lisp/emacs-lisp/timer.el.
(battery--files): New function.
(battery--find-linux-sysfs-batteries): Use it and make fewer
syscalls.
(battery-status-function): Perform GNU/Linux checks in increasing
order of obsolescence: sysfs, ACPI, and then APM. Simplify Darwin
check. Add :version tag now that battery-upower is the default.
(battery-echo-area-format, battery-mode-line-format): Mention %s.
(battery-load-low, battery-load-critical): New faces.
(battery-update): Display battery-mode-line-format even if
percentage is N/A. Apply faces battery-load-low or
battery-load-critical according to the percentage, but append them
so they don't override user customizations. Update all mode lines
since we are in global-mode-string.
(battery-linux-proc-apm-regexp): Mark as obsolete, replacing with...
(battery--linux-proc-apm): ...this new rx definition.
(battery-linux-proc-apm): Use it. Fix indentation. Simplify.
(battery--acpi-rate, battery--acpi-capacity): New rx definitions.
(battery-linux-proc-acpi): Use them. Fix pathological whitespace
regexps. Simplify.
(battery-linux-sysfs): Fix docstring and indentation. Reduce number
of file searches. Simplify.
(battery-bsd-apm): Fix docstring. Simplify.
(battery-pmset): Fix docstring. Simplify ID regexp.
* lisp/emacs-lisp/rx.el (rx-define): Indent as a defun.
* test/lisp/battery-tests.el (battery-linux-proc-apm-regexp): Test
new battery--linux-proc-apm rx definition.
(battery-acpi-rate-regexp, battery-acpi-capacity-regexp): New tests.
Basil L. Contovounesios [Fri, 29 May 2020 18:56:14 +0000 (19:56 +0100)]
Fix and extend format-spec (bug#41758)
* lisp/format-spec.el: Use lexical-binding. Remove dependence on
subr-x.el.
(format-spec-make): Clarify docstring.
(format-spec--parse-modifiers): Rename to...
(format-spec--parse-flags): ...this and simplify. In particular,
don't bother parsing :space-pad which is redundant and unused.
(format-spec--pad): Remove, replacing with...
(format-spec--do-flags): ...this new helper function which performs
more of format-spec's supported text manipulation.
(format-spec): Autoload. Allow optional argument to take on special
values 'ignore' and 'delete' for more control over what happens when
a replacement for a format specification isn't provided. Bring back
proper support for a precision modifier similar to that of 'format'.
* lisp/battery.el (battery-format): Rewrite in terms of format-spec.
(battery-echo-area-format, battery-mode-line-format): Mention
support of format-spec syntax in docstrings.
* doc/lispref/strings.texi (Custom Format Strings):
* etc/NEWS: Document and announce these changes.
* lisp/dired-aux.el (dired-do-compress-to):
* lisp/erc/erc-match.el (erc-log-matches):
* lisp/erc/erc.el (erc-update-mode-line-buffer):
* lisp/gnus/gnus-sieve.el (gnus-sieve-update):
* lisp/gnus/gssapi.el (open-gssapi-stream):
* lisp/gnus/mail-source.el (mail-source-fetch-file)
(mail-source-fetch-directory, mail-source-fetch-pop)
(mail-source-fetch-imap):
* lisp/gnus/message.el (message-insert-formatted-citation-line):
* lisp/image-dired.el:
* lisp/net/eww.el:
* lisp/net/imap.el (imap-kerberos4-open, imap-gssapi-open)
(imap-shell-open):
* lisp/net/network-stream.el (network-stream-open-shell):
* lisp/obsolete/tls.el (open-tls-stream):
* lisp/textmodes/tex-mode.el:
Remove extraneous loads and autoloads of format-spec now that it is
autoloaded and simplify its uses where possible.
* test/lisp/battery-tests.el (battery-format): Test new format-spec
support.
* test/lisp/format-spec-tests.el (test-format-spec): Rename to...
(format-spec) ...this, extending test cases.
(test-format-unknown): Rename to...
(format-spec-unknown): ...this, extending test cases.
(test-format-modifiers): Rename to...
(format-spec-flags): ...this.
(format-spec-make, format-spec-parse-flags, format-spec-do-flags)
(format-spec-do-flags-truncate, format-spec-do-flags-pad)
(format-spec-do-flags-chop, format-spec-do-flags-case): New tests.
Basil L. Contovounesios [Sat, 6 Jun 2020 12:20:06 +0000 (13:20 +0100)]
Various dbus.el cleanups (bug#41744)
* etc/NEWS: Announce removal of aliases obsolete since Emacs 24.3.
* lisp/net/dbus.el: Remove unneeded dependency on cl-lib.el. Quote
function symbols as such.
(dbus-ignore-errors): Don't add macro name to font-lock keywords, as
emacs-lisp-mode now dynamically fontifies new macro definitions.
(dbus-event-error-hooks, dbus-call-method-non-blocking): Remove
aliases obsolete since Emacs 24.3.
(dbus-register-signal, dbus-escape-as-identifier): Simplify. Use
regexp \` and \' in place of ^ and $.
(dbus--parse-xml-buffer): New function for libxml2 compatibility.
(dbus-introspect-xml): Use it.
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-unescape-from-identifier, dbus-list-known-names)
(dbus-introspect-get-all-nodes, dbus-get-all-properties)
(dbus-get-all-managed-objects): Simplify.
(dbus--introspect-names, dbus--introspect-name): New convenience
functions.
(dbus-introspect-get-node-names)
(dbus-introspect-get-interface-names)
(dbus-introspect-get-interface, dbus-introspect-get-method-names)
(dbus-introspect-get-method, dbus-introspect-get-signal-names)
(dbus-introspect-get-signal, dbus-introspect-get-property-names)
(dbus-introspect-get-property)
(dbus-introspect-get-annotation-names)
(dbus-introspect-get-annotation)
(dbus-introspect-get-argument-names, dbus-introspect-get-argument):
Use them to DRY.
* test/lisp/net/dbus-tests.el (dbus-test-all): Quote function
symbols as such.
Tassilo Horn [Thu, 18 Jun 2020 10:44:42 +0000 (12:44 +0200)]
;Fix error in commit
dcdf6d7124
Tassilo Horn [Thu, 18 Jun 2020 08:39:01 +0000 (10:39 +0200)]
Make bug-reference auto-setup work in vc-dir or Magit like modes
* lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc):
Use default-directory if not in a file-visiting buffer to determine
VC URL.
Tassilo Horn [Thu, 18 Jun 2020 05:53:45 +0000 (07:53 +0200)]
Bind default-directory to given DIR.
Otherwise, "git config branch.<branch>.remote" would return the global
default "origin" instead of the actual, project-specific remote name.
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Bind default-directory
to given DIR.
Philip K [Thu, 18 Jun 2020 01:00:38 +0000 (04:00 +0300)]
New command: project-kill-buffers
* lisp/progmodes/project.el
(project-kill-buffers-skip-conditions): New variable.
(project--buffer-list): New function.
(project-kill-buffers): New command (bug#41868).
Dmitry Gutov [Wed, 17 Jun 2020 23:10:33 +0000 (02:10 +0300)]
; Add a heading and a binding
Theodor Thornhill [Wed, 17 Jun 2020 23:09:41 +0000 (02:09 +0300)]
New command: project-switch-to-buffer
* lisp/progmodes/project.el (project-switch-to-buffer): New command.
Theodor Thornhill [Wed, 17 Jun 2020 23:05:31 +0000 (02:05 +0300)]
Add global bindings for project commands
* lisp/progmodes/project.el
(project-prefix-map): New variable.
Add the new keymap to ctl-x-map.
Dmitry Gutov [Wed, 17 Jun 2020 22:30:32 +0000 (01:30 +0300)]
Fix setting project-vc-merge-submodules via .dir-locals.el
* lisp/progmodes/project.el
(project--vc-merge-submodules-p): New function.
(project-try-vc, project--vc-list-files): Use it.
Dmitry Gutov [Wed, 17 Jun 2020 22:09:29 +0000 (01:09 +0300)]
vc-git-dir-extra-headers: Fix recent breakage
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Account for
'remote' being set to "" when not found
(https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00582.html).
(vc-git-dir-extra-headers): Check the value of remote-url instead.
Tassilo Horn [Thu, 11 Jun 2020 15:02:02 +0000 (17:02 +0200)]
Auto-setup for bug-reference-mode
Tries to guess suitable bug-reference-bug-regexp and
bug-reference-url-format values based on version control URL (in file
buffers) and mail information (in Gnus summary and article buffers).
* lisp/progmodes/bug-reference.el
(bug-reference--maybe-setup-from-vc): New defun.
(bug-reference-setup-from-vc-alist): New defvar defining setup rules
based on version control URL.
(bug-reference-try-setup-from-vc): New defun using above defvar.
(bug-reference--maybe-setup-from-mail): New defun.
(bug-reference-setup-from-mail-alist): New defvar defining setup rules
based on mail/newsgroups and header values.
(bug-reference-try-setup-from-gnus): New defun using above defvar.
(bug-reference--try-setup-gnus-article): New defun.
(bug-reference--run-auto-setup): New defun.
(bug-reference-mode): Call bug-reference--run-auto-setup as
:after-hook.
(bug-reference-prog-mode): Call bug-reference--run-auto-setup as
:after-hook.
Glenn Morris [Wed, 17 Jun 2020 15:47:53 +0000 (08:47 -0700)]
Merge from origin/emacs-27
229995ba2c (origin/emacs-27) Fix some Texinfo markup
01e86b9fdf Fix recentf typo in Emacs manual
cd4f75bb86 Rename default function to next-error-buffer-unnavigated-c...
1dff0a8949 * lisp/image-mode.el (image-toggle-display-image): Fix fit...
a71d1787f1 * doc/misc/tramp.texi (Predefined connection information):...
079b0dc430 Delete, don't kill, dir dir fragments in icomplete-fido-ba...
6cdecc2659 Revert markup change in with-coding-priority docs
22f4fba8a9 * lisp/emulation/cua-rect.el (cua--rectangle-region-insert...
6b9eac6759 * lisp/simple.el (shell-command-on-region): Fix docstring.
43ad7dc1af Clean up D-Bus documentation (bug#41744)
c43e5ed60d * lisp/image-mode.el (image-transform-original): New comma...
6eb18a950d Move tab-bar and tab-line faces to faces.el (part of bug#4...
# Conflicts:
# etc/NEWS
# lisp/simple.el
Basil L. Contovounesios [Wed, 17 Jun 2020 11:53:40 +0000 (12:53 +0100)]
Fix some Texinfo markup
* doc/misc/gnus-faq.texi (FAQ 3-11):
* doc/emacs/frames.texi (Tab Bars): Consistently use @var with
lower-case metasyntactic variables and @minus instead of a dash.
(Text-Only Mouse):
* doc/emacs/files.texi (Auto Revert):
* doc/emacs/misc.texi (emacsclient Options)
(Embedded WebKit Widgets):
* doc/lispref/control.texi (pcase Macro):
* doc/lispref/debugging.texi (Backtraces):
* doc/lispref/files.texi (Truenames):
* doc/lispref/frames.texi (Management Parameters):
* doc/lispref/os.texi (Time Calculations):
* doc/lispref/text.texi (Parsing JSON):
* doc/misc/efaq-w32.texi (Other versions of Emacs, Debugging)
(Swap Caps NT, Printing, Bash, Developing with Emacs):
* doc/misc/efaq.texi (New in Emacs 25):
* doc/misc/emacs-gnutls.texi (Help For Users):
* doc/misc/message.texi (Using S/MIME, Passphrase caching):
* test/manual/etags/tex-src/gzip.texi (Overview): Use @. when a
sentence in the middle of a paragraph ends with an upper-case letter
as per "(texinfo) Ending a Sentence".
Basil L. Contovounesios [Wed, 17 Jun 2020 00:10:20 +0000 (01:10 +0100)]
Fix recentf typo in Emacs manual
* doc/emacs/files.texi (File Conveniences): Fix misspelling of
recentf-list.
Juri Linkov [Tue, 16 Jun 2020 23:18:11 +0000 (02:18 +0300)]
* lisp/dired-aux.el (dired-vc-deduce-fileset): Add autoload cookie.
Juri Linkov [Tue, 16 Jun 2020 23:14:12 +0000 (02:14 +0300)]
Rename default function to next-error-buffer-unnavigated-current (bug#40919)
* lisp/simple.el (next-error-find-buffer-function): Rename default function
from next-error-no-navigation-try-current
to next-error-buffer-unnavigated-current.
Juri Linkov [Tue, 16 Jun 2020 22:58:32 +0000 (01:58 +0300)]
* lisp/image-mode.el (image-toggle-display-image): Fix fit of rotated images.
When fitting rotated image to width and height, swap width and height
when changing orientation between portrait and landscape (bug#41886).
Dmitry Gutov [Tue, 16 Jun 2020 22:27:37 +0000 (01:27 +0300)]
Bump the project.el package version
* lisp/progmodes/project.el: Bump the package version.
Dmitry Gutov [Tue, 16 Jun 2020 22:24:01 +0000 (01:24 +0300)]
Change the key for project-find-regexp
* lisp/progmodes/project.el (project-switch-commands):
Change the key for 'project-find-regexp' to 'g', which seems to be
the consensus.
Dmitry Gutov [Tue, 16 Jun 2020 21:50:31 +0000 (00:50 +0300)]
Make project file name completion adhere to customization
* lisp/progmodes/project.el (project-find-file-in):
Bind completion-ignore-case to the value of
read-file-name-completion-ignore-case (bug#41902).
David Edmondson [Sat, 28 Mar 2020 19:03:58 +0000 (19:03 +0000)]
gnus-cloud: Improve cloud sync
After replaying a set of actions downloaded by gnus-cloud, persist the
highest sequence number seen as the local `gnus-cloud-sequence'
number, in order that a future download will not unnecessarily replay
previously seen actions and any future uploads from this emacs
instance use a higher sequence number than that downloaded.
Remove the test on whether individual newsrc entries are older than
the current time, as that is always going to be the case.
Michael Albinus [Tue, 16 Jun 2020 10:34:00 +0000 (12:34 +0200)]
* doc/misc/tramp.texi (Predefined connection information): Add "tmpdir".
Michael Albinus [Mon, 15 Jun 2020 14:24:22 +0000 (16:24 +0200)]
Fix some Tramp problems seen during tests
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Add `access-file'.
(tramp-crypt-file-name-for-operation): Rewrite. Take second
argument into account.
(tramp-crypt-file-name-handler): Use it.
(tramp-crypt-send-command): Set buffer multibyte (but utf8 files
still don't work).
(tramp-crypt-handle-access-file): New defun.
(tramp-crypt-do-copy-or-rename-file): Short track if both files
are on a crypted remote dir.
* lisp/net/tramp.el (file-notify-rm-watch): Declare.
(tramp-inhibit-progress-reporter): New defvar.
(tramp-message): Display message only if not suppressed by
progress reporter.
(with-tramp-progress-reporter): Suppress concurrent progress
reporter messages.
(tramp-file-notify-process-sentinel): Simplify.
Tassilo Horn [Mon, 15 Jun 2020 07:07:12 +0000 (09:07 +0200)]
Use vc-git-repository-url in vc-git-dir-extra-headers
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Use
vc-git-repository-url for getting the remote's URL.
Tassilo Horn [Mon, 15 Jun 2020 06:56:11 +0000 (08:56 +0200)]
Add optional remote-name argument to VC repository-url command
* lisp/vc/vc.el: Document new remote-name argument of VC
repository-url command.
* lisp/vc/vc-git.el (vc-git-repository-url): Add and use new arg.
* lisp/vc/vc-hg.el (vc-hg-repository-url): Add and use new arg.
* lisp/vc/vc-bzr.el (vc-bzr-repository-url): Add new arg but ignore
it.
* lisp/vc/vc-svn.el (vc-svn-repository-url): Add new arg but ignore
it.
Tassilo Horn [Sun, 14 Jun 2020 16:24:14 +0000 (18:24 +0200)]
Add new VC command `repository-url'
* lisp/vc/vc.el: Document repository-url command.
* lisp/vc/vc-bzr.el (vc-bzr-repository-url): New defun.
* lisp/vc/vc-git.el (vc-git-repository-url): New defun.
* lisp/vc/vc-hg.el (vc-hg-repository-url): New defun.
* lisp/vc/vc-svn.el (vc-svn-repository-url): New defun.
Philipp Stephani [Wed, 10 Jun 2020 17:01:03 +0000 (19:01 +0200)]
Band-aid for edebugging generator bodies (Bug#40434).
Edebug doesn't support them well. Rather than trying to fix Edebug,
disable instrumentation for now to prevent annoying bugs.
* lisp/emacs-lisp/generator.el (iter-defun, iter-lambda, iter-make)
(iter-do): Don't attempt to instrument bodies that are mangled by the
CPS transformer.
* test/lisp/emacs-lisp/generator-tests.el
(generator-tests-edebug): New regression test.
Philipp Stephani [Sun, 14 Jun 2020 16:18:13 +0000 (18:18 +0200)]
Ensure that getters and setters can be edebugged at the same time.
It's necessary to add a name suffix to setters defined with
'gv-define-setter' so that Edebug can distinguish between the getter
and the setter (Bug#41853).
* lisp/emacs-lisp/gv.el (gv-define-setter): Add a name suffix to
setter definitions.
* test/lisp/emacs-lisp/gv-tests.el (gv-setter-edebug): New regression
test.
Michael Albinus [Sun, 14 Jun 2020 13:31:17 +0000 (15:31 +0200)]
Rearrange detecting remote uid and gid in Tramp
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Add `tramp-get-remote-gid' and 'tramp-get-remote-uid'.
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Add `file-ownership-preserved-p'.
(tramp-crypt-add-directory): Check, that NAME is not quoted.
(tramp-crypt-handle-file-ownership-preserved-p): New defun.
(tramp-crypt-handle-insert-directory): Fix docstring.
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
Add `tramp-get-remote-gid' and 'tramp-get-remote-uid'.
(tramp-gvfs-handle-file-readable-p): Call `tramp-get-remote-uid'.
(tramp-gvfs-handle-get-remote-uid)
(tramp-gvfs-handle-get-remote-gid): Rename from
`tramp-gvfs-get-remote-{uid,gid}'. Do not cache result.
(tramp-gvfs-maybe-open-connection): No special handling for remote
uid and gid.
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
Add `tramp-get-remote-gid' and 'tramp-get-remote-uid'.
(tramp-sh-handle-get-remote-uid, tramp-sh-handle-get-remote-gid):
Rename from `tramp-get-remote-{uid,gid}'. Do not cache result.
(tramp-sh-handle-file-ownership-preserved-p): Distinguish by GROUP
when caching.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add `tramp-get-remote-gid' and 'tramp-get-remote-uid'.
(tramp-sudoedit-handle-get-remote-uid)
(tramp-sudoedit-handle-get-remote-gid): Rename from
`tramp-sudoedit-get-remote-{uid,gid}'. Do not cache result.
(tramp-sudoedit-handle-set-file-uid-gid)
(tramp-sudoedit-handle-write-region): Call `tramp-get-remote-uid'
and `tramp-get-remote-gid'.
(tramp-sudoedit-maybe-open-connection): No special handling for
remote uid and gid.
* lisp/net/tramp.el (tramp-file-name-for-operation):
Add `tramp-get-remote-gid' and 'tramp-get-remote-uid'.
(tramp-handle-write-region, tramp-check-cached-permissions):
Call `tramp-get-remote-uid' and `tramp-get-remote-gid'.
(tramp-get-remote-uid, tramp-get-remote-gid): New defuns.
(tramp-local-host-p): Simplify `tramp-get-remote-uid' call.
* test/lisp/net/tramp-tests.el (tramp-test17-dired-with-wildcards)
Skip if needed.
Michael R. Mauger [Mon, 30 Mar 2020 00:52:10 +0000 (20:52 -0400)]
2020-03-29 Michael R. Mauger <michael@mauger.com>
* lisp/progmodes/sql.el (sql-add-product): Re-correct argument
spec. Previous change was due to my mistake; I have
resolved back to the prior behavior (Bug#39960).
* test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added
test to insure I don't make the same mistake again.
João Távora [Sat, 13 Jun 2020 17:45:40 +0000 (18:45 +0100)]
Delete, don't kill, dir dir fragments in icomplete-fido-backward-updir
Reported by: Andrew Schwartzmeyer <andrew@schwartzmeyer.com>
* lisp/icomplete.el (icomplete-fido-backward-updir): Don't save
dir fragments to kill ring.
Glenn Morris [Sat, 13 Jun 2020 17:42:47 +0000 (10:42 -0700)]
Tag a test as unstable
* test/lisp/calendar/lunar-tests.el (lunar-test-phase-list):
Mark as unstable. Eg fails on hydra.nixos.org.
Basil L. Contovounesios [Sat, 13 Jun 2020 16:53:59 +0000 (17:53 +0100)]
Revert markup change in with-coding-priority docs
This partially reverts commit
fc759eb9b3
"Fix with-coding-priority markup in Elisp manual"
of 2019-10-13T15:36:02Z!contovob@tcd.ie.
For discussion, see the following thread:
https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg00550.html
https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00473.html
* doc/lispref/nonascii.texi (Specifying Coding Systems): Use more
specific cross-reference to progn even if info.el displays it
suboptimally.
Andrea Corallo [Sat, 13 Jun 2020 09:12:15 +0000 (11:12 +0200)]
* Implement 'maybe_gc_or_quit' to allow correct GC in compiled Lisp.
Implement the backend side of 'maybe_gc_or_quit' so that every time a
call to it is emitted we render it accordingly. This allow GC to
kicks in during long loops in Lisp code.
* src/comp.c (comp_t): Add 'maybe_gc_or_quit' field.
(helper_link_table): Add 'maybe_gc', 'maybe_quit'.
(emit_maybe_gc_or_quit): New function.
(declare_runtime_imported_funcs): Import 'maybe_gc', 'maybe_quit'
functions.
(define_maybe_gc_or_quit): New function.
(Fcomp__init_ctxt): Register emitter.
(Fcomp__compile_ctxt_to_file): Call 'define_maybe_gc_or_quit'.
(syms_of_comp): Define Qcomp_maybe_gc_or_quit.
Andrea Corallo [Thu, 11 Jun 2020 20:53:31 +0000 (22:53 +0200)]
* Introduce latches
Define a new kind of basic block 'latch' to close over loops. Its
purpose is for now to emit calls to `comp-maybe-gc-or-quit' but in
future will be usefull for the loop optimizer to exploit unboxes.
* lisp/emacs-lisp/comp.el (comp-block): New base class.
(comp-block-lap): New class for LAP derived basic blocks.
(comp-latch): New class.
(comp-bb-maybe-add, comp-make-curr-block, comp-emit-handler)
(comp-emit-switch, comp-emit-switch, comp-limplify-top-level)
(comp-addr-to-bb-name, comp-limplify-block)
(comp-limplify-function): Update logic for new bb objects
arrangment.
(comp-latch-make-fill): New function.
(comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit
latches.
(comp-new-block-sym): Add a postfix paramenter.
Andrea Corallo [Sat, 13 Jun 2020 12:39:49 +0000 (14:39 +0200)]
Fix const qualifier warnings
* src/lisp.h (struct Lisp_Subr): Remove const qualifier from
'native_c_name'.
* src/alloc.c (cleanup_vector): Cast to discard const qualifier.
Philip K [Sat, 30 May 2020 19:47:51 +0000 (21:47 +0200)]
Mark python-shell-virtualenv-root as safe for directories
* lisp/progmodes/python.el (python-shell-virtualenv-root):
Require a directory name. (Bug#41619)
Konstantin Kharlamov [Wed, 3 Jun 2020 11:51:03 +0000 (14:51 +0300)]
Highlight typed variables in Python
* progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Recognize
typed variables like "foo: int = 1" as well. (Bug#41684)
Andrea Corallo [Sat, 13 Jun 2020 06:04:09 +0000 (08:04 +0200)]
* src/alloc.c (cleanup_vector): Fix --enable-check-lisp-object-type build.
Michael Albinus [Fri, 12 Jun 2020 18:17:02 +0000 (20:17 +0200)]
Further fixes while testing tramp-crypt
* doc/misc/tramp.texi (External methods): Remove experimental note
for rclone.
(Keeping files encrypted): Mark file encryption as experimental.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
Use `tramp-handle-file-truename'.
(tramp-adb-handle-file-truename): Remove.
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Add `file-writable-p'.
(tramp-crypt-send-command): Return t if no error.
(tramp-crypt-do-encrypt-or-decrypt-file-name)
(tramp-crypt-do-encrypt-or-decrypt-file): Raise an error if it fails.
(tramp-crypt-do-copy-or-rename-file): Flush file properties also
when copying a directory.
(tramp-crypt-handle-file-writable-p): New defun.
(tramp-crypt-handle-insert-directory): Check for library
`text-property-search'.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-uid-gid):
Rename from `tramp-gvfs-set-file-uid-gid'.
* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename):
Use `tramp-handle-file-truename' as fallback.
* lisp/net/tramp.el (tramp-handle-file-truename):
Let-bind `tramp-crypt-enabled' to nil.
(tramp-handle-write-region): Set also file ownership.
* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
Skip if needed.
Eric Abrahamsen [Sat, 6 Jun 2020 19:13:15 +0000 (12:13 -0700)]
Derive gnus-edit-form-mode from lisp-data-mode, fix mode map
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode): Derive from
lisp-data-mode, which can be handy for users who have turned on things
like paredit for lisp-data-mode.
(gnus-edit-form-mode-map): Put creation of the map inside the defvar.
Andrea Corallo [Thu, 11 Jun 2020 16:37:47 +0000 (18:37 +0200)]
Merge remote-tracking branch 'savahnna/master' into HEAD
Andrea Corallo [Thu, 11 Jun 2020 21:24:00 +0000 (23:24 +0200)]
* Fix memory leak when native compiled function is collected
* src/alloc.c (cleanup_vector): Handle native compiled
functions.
Andrea Corallo [Thu, 11 Jun 2020 18:23:00 +0000 (20:23 +0200)]
Fix recursive load for non cons hashed 'data_ephemeral_vec' content
Removing `Vcomp_sym_subr_c_name_h' all c_name functions are GC
markable only through 'data_ephemeral_vec'. A recursive load must not
overide its content otherwise a previously activated load will have
the original content collected before it's used.
* src/comp.h (struct Lisp_Native_Comp_Unit): Add 'load_ongoing'
field.
* src/comp.c (unset_cu_load_ongoing): New function.
(load_comp_unit): Update logic to detect and handle recursive
loads.
Andrea Corallo [Thu, 11 Jun 2020 20:22:00 +0000 (22:22 +0200)]
Remove `Vcomp_sym_subr_c_name_h'
Given there's no more unique relation symbol-name -> c-name remove
`Vcomp_sym_subr_c_name_h' and store the c_name directly in struct
Lisp_Subr. The old approach would have failed dumping two functions
with the same symbol-name.
* src/lisp.h (struct Lisp_Subr): Add 'native_c_name' field.
* src/pdumper.c (dump_subr): Update hash + dump 'native_c_name'.
(dump_cold_native_subr): dump 'native_c_name'.
(dump_do_dump_relocation): Update logic for reviving using
'native_c_name'.
* src/comp.c (make_subr): Update for 'native_c_name' field.
(Fcomp__register_lambda, Fcomp__register_subr): Clean-up code for
'Vcomp_sym_subr_c_name_h' removal.
(syms_of_comp): Remove 'Vcomp_sym_subr_c_name_h'.
Mattias Engdegård [Wed, 10 Jun 2020 22:06:24 +0000 (00:06 +0200)]
; * lisp/faces.el (readable-foreground-color): Fix editing mistake.
Mattias Engdegård [Wed, 10 Jun 2020 17:18:58 +0000 (19:18 +0200)]
Improved light/dark colour predicate (bug#41544)
Add a predicate, color-dark-p, for deciding whether a colour is more
readable with black or white as contrast. It has experimentally been
shown to be more accurate and robust than the various methods
currently employed.
The new predicate compares the relative luminance of the colour to an
empirically determined cut-off value, and it seems to get it right in
almost all cases, with no value leading to outright bad results.
* lisp/faces.el (readable-foreground-color): Use color-dark-p.
(color-dark-p): New function.
* lisp/facemenu.el (list-colors-print): Use readable-foreground-color,
improving readability of list-colors-display.
* lisp/textmodes/css-mode.el (css--contrasty-color): Remove.
(css--fontify-region): Use readable-foreground-color.
Michael Albinus [Wed, 10 Jun 2020 17:36:53 +0000 (19:36 +0200)]
Futher tramp-crypt implementation and documentation
* doc/misc/tramp.texi (Top, Configuration): Insert section
`Keeping files encrypted' in menu.
(Keeping files encrypted): New node.
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Add `tramp-set-file-uid-gid'.
(tramp-crypt-maybe-open-connection): Simplify.
(tramp-crypt-do-encrypt-or-decrypt-file): Use `binary' coding system.
(tramp-crypt-handle-set-file-uid-gid): New defun.
* test/lisp/net/tramp-tests.el (tramp-test09-insert-file-contents):
Adapt test.
Philipp Stephani [Wed, 10 Jun 2020 13:49:57 +0000 (15:49 +0200)]
; * test/lisp/emacs-lisp/generator-tests.el: Checkdoc fixes
Philipp Stephani [Wed, 10 Jun 2020 13:46:12 +0000 (15:46 +0200)]
Slightly improve commit
73be4d1ed5b190bd93e9bad6aebe43d0dea0d7d3.
* lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1)
(cl-macro-list, cl-macro-list1): Use exactly the same specification as
for &optional (sans the third optional list element).
Philipp Stephani [Wed, 10 Jun 2020 13:34:41 +0000 (15:34 +0200)]
Allow destructuring in &aux sections when using edebug (Bug#40431)
* lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1)
(cl-macro-list, cl-macro-list1): Allow arbitrary 'cl-lambda'
arguments in the &aux section.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-aux-edebug): New
regression test.
Andrea Corallo [Tue, 9 Jun 2020 20:41:19 +0000 (22:41 +0200)]
* Remove unused 'helper_save_window_excursion'
* src/comp.c (helper_unwind_protect): Remove definition and
declaration.
Nicolás Bértolo [Tue, 9 Jun 2020 01:01:25 +0000 (22:01 -0300)]
Copy suffixes passed to 'openp' to avoid GC crashes. Fixes bug#41755
In openp_add_middle_dir_to_suffixes we build a heap-based list from
the passed suffixes. It is crucial that we don't create a heap-based
cons that points to a stack-based list.
* src/lread.c (openp_add_middle_dir_to_suffixes): Copy suffixes when
building a list of middle-dirs and suffixes.
Basil L. Contovounesios [Wed, 10 Jun 2020 00:00:01 +0000 (01:00 +0100)]
; Simplify last change
* lisp/progmodes/project.el (project--read-project-list): We are
already at BOB after insert-file-contents.
Juri Linkov [Tue, 9 Jun 2020 23:03:06 +0000 (02:03 +0300)]
* lisp/emulation/cua-rect.el (cua--rectangle-region-insert): New function.
Add cua--insert-rectangle around region-insert-function (bug#41440).
Simen Heggestøyl [Fri, 5 Jun 2020 17:32:30 +0000 (19:32 +0200)]
Save project list as lisp data
Save the project list file as lisp data instead of line separated
strings to make it more extendable in the future.
* lisp/progmodes/project.el (project--read-project-list)
(project--write-project-list, project--add-to-project-list-front)
(project--remove-from-project-list): Adjust to `project--list' now
being an alist.